package br.com.vpsa.previdordevendas.controller;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import br.com.vpsa.previdordevendas.model.pojo.EntidadePojo;
import br.com.vpsa.previdordevendas.model.service.ConsolidadorPedidosService;
import br.com.vpsa.previdordevendas.model.service.EntidadeService;
import br.com.vpsa.previdordevendas.model.util.BaseUtil;
import br.com.vpsa.previdordevendas.model.util.JsonUtils;

@Controller
@RequestMapping("/consolidador")
public class ConsolidadorPedidosController 
{
	@Autowired
	private ConsolidadorPedidosService consolidadorPedidosService;
	
	@Autowired
	private EntidadeService entidadeService;
	
	@RequestMapping(value="/{urlDestino}", method = RequestMethod.GET)
    public String index( @PathVariable String urlDestino, Map<String, Object> map) 
	{
		List<EntidadePojo> entidades = entidadeService.listarTodas();
		
		map.put("entidades", JsonUtils.getJson(entidades) );
		map.put("urlDestino", urlDestino);
		
		return "consolidador";
	}
	
	@RequestMapping(value="/downloadPedidos/{idEntidade}" ,method = RequestMethod.GET)
    public @ResponseBody int downloadPedidos( @PathVariable Long idEntidade, @RequestParam("inicio") String inicio, 
    		@RequestParam("quantidade") String quantidade, Map<String, Object> map) 
	{
		return consolidadorPedidosService.salvarJsonPedidos(idEntidade, Integer.valueOf(inicio), Integer.valueOf(quantidade), BaseUtil.getBase());
	}
	
	@RequestMapping(value="/salvarPedidos" ,method = RequestMethod.GET)
    public @ResponseBody Boolean salvarPedidos( Map<String, Object> map) 
	{
		consolidadorPedidosService.salvarPedidosPojo(BaseUtil.getBase());
		return true;
	}
	
	@RequestMapping(value="/sumarizar" ,method = RequestMethod.GET)
    public @ResponseBody Boolean sumarizar( Map<String, Object> map) 
	{
		consolidadorPedidosService.sumarizarPedidos(BaseUtil.getBase());
		return true;
	}
	
}
